home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / libs / newreqlibs17.lzh / NewReqLibs / NewReqLibs.doc next >
Text File  |  1996-10-05  |  14KB  |  486 lines

  1. $VER: NewReqLibs.doc 1.7 (5.10.96)
  2.  
  3.  
  4.  
  5.  
  6.  
  7. ============================================================
  8.                       October 5, 1996
  9.  
  10.                      Torbjörn Andersson
  11.                           presents
  12.                        NewReqLibs 1.7
  13.  
  14.                           Freeware
  15.  
  16. ============================================================
  17.  
  18.  
  19.  
  20.  
  21.  
  22. 1. Contents
  23. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  24. Contents ................................................. 1
  25. Introduction ............................................. 2
  26. Requirements ............................................. 3
  27. Installation ............................................. 4
  28. TRTPatch ................................................. 5
  29. Notes about the new asl.library .......................... 6
  30. Notes about the new req.library .......................... 7
  31. History .................................................. 8
  32. Credits .................................................. 9
  33. Distribution ............................................ 10
  34.  
  35.  
  36.  
  37.  
  38.  
  39. 2. Introduction
  40. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  41. NeqReqLibs is something similar to RTPatch by Nico François.
  42. RTPatch forces other libraries to use reqtools.library.
  43. Instead of adding something to disk based libraries, my
  44. solution is to replace them.
  45.  
  46. In the Libs directory of this distribution you will find the
  47. libraries asl.library and req.library. They are both a
  48. rewrite of the original ones (the standard asl.library and
  49. req.library by Colin Fox and Bruce Dawson).
  50.  
  51. The new libraries doesn't have any code for putting up their
  52. own requesters, instead they call reqtools.library. If you
  53. install these libraries, programs that use them will
  54. automatically use reqtools.library. The purpose of doing
  55. this is that reqtools.library has better requesters. They
  56. are more powerful, more user-friendly and have the
  57. look-and-feel of kickstart release 2.0.
  58.  
  59. The main advantage by using NewReqLibs is that they take
  60. less memory, a patch program takes more (both on disk and
  61. when loaded in RAM).
  62.  
  63. The disadvantage by using each new library might be that
  64. compatibility problems increases. The whole library is
  65. "patched" not just the necessary functions.
  66.  
  67. In this distribution you will also find the program
  68. TRTPatch. Its main purpose is to patch some kickstart
  69. functions to use reqtools.library.
  70.  
  71. Note:
  72. Since release 1.6, my req.library uses intuition.library
  73. and asl.library where possible instead. I think everything
  74. should use the standard functions the AmigaOS provides,
  75. except for patches. And the patches here are TRTPatch and my
  76. asl.library, my req.library is only a replacement for the
  77. old one.
  78.  
  79.  
  80.  
  81.  
  82.  
  83. 3. Requirements
  84. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  85. NewReqLibs requires reqtools.library by Nico François,
  86. preferably version 38 or higher.
  87.  
  88. TRTPatch requires kickstart 2.04+.
  89.  
  90. My req.library requires kickstart 2.04+.
  91.  
  92. The original asl.library does not work on kickstart releases
  93. lower than 2.0. My one does (except that the screen mode
  94. requester that isn't available in reqtools.library then).
  95.  
  96.  
  97.  
  98.  
  99.  
  100. 4. Installation
  101. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  102. This distribution contains three parts to be installed:
  103.  
  104. · Copy Libs/asl.library to the LIBS: drawer.
  105. · Copy Libs/req.library to the LIBS: drawer.
  106. · Copy TRTPatch to your system and start it every time you
  107.   boot.
  108.  
  109. You can choose freely which parts to install, they work
  110. completely independent of each other.
  111.  
  112.  
  113.  
  114.  
  115.  
  116. 5. TRTPatch
  117. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  118. TRTPatch is a program that will do some changes to the OS.
  119. Some functions are patched to use reqtools.library to open a
  120. requester. The patches can't always make use of
  121. reqtools.library and they will then call the original
  122. function. TRTPatch can be started from both Workbench and
  123. CLI.
  124.  
  125. Usage: TRTPatch [NOTRAP] [NOALERT] [NODISPALERT] [NOTIMEDALERT]
  126.                 [NOAUTOREQ] [NOEASYREQ] [QUIET]
  127.  
  128. Explanation of options:
  129.  
  130. NOTRAP:
  131. Don't patch exec.library/AddTask().
  132.  
  133. NOALERT:
  134. Don't patch exec.library/Alert().
  135.  
  136. NODISPALERT:
  137. Don't patch intuition.library/DisplayAlert().
  138.  
  139. NOTMEDALERT:
  140. Don't patch intuition.library/TimedDisplayAlert().
  141.  
  142. NOAUTOREQ:
  143. Don't patch intuition.library/AutoRequest().
  144.  
  145. NOEASYREQ:
  146. Don't patch intuition.library/EasyRequest().
  147.  
  148. QUIET:
  149. Don't show information about installed patches.
  150.  
  151. Functions patched: 
  152.  
  153. · exec.library/AddTask().
  154. The default task trap handler doesn't call
  155. exec.library/Alert() through the LVO, and trap handling of
  156. processes use a requester. To make the Alert() patch more
  157. usefull, this AddTask() patch will install a new trap
  158. handler in each task added to the system. This trap handler
  159. switches to user mode and calls exec.library/Alert() through
  160. the LVO.
  161.  
  162. When this patch is installed, all task that doesn't have its
  163. own custom trap handler will have the same one installed
  164. that the patch installs when new tasks are added.
  165.  
  166. · exec.library/Alert().
  167. The original function displays an alert number which doesn't
  168. tell you very much, especially if you are not a programmer.
  169. This patch will use reqtools.library to open a nice
  170. requester and display a lot of information.
  171.  
  172. The title will read "Not enough memory"/"Software Failure"
  173. or "Recoverable Alert", just like the first sentence of the
  174. original Alert().
  175.  
  176. The address of the task that called Alert() is displayed
  177. together with its task name and eventually cli command name.
  178. The usual alert number is displayed, and information that
  179. could be extracted from it - who caused the alert and why.
  180. A dump of CPU registers are also shown.
  181.  
  182. There are four responses to choose between -
  183. Continue/Suspend/Reboot and Alert. Continue is the same as
  184. pressing the left mouse button after an original Alert(),
  185. the execution will continue with unpredictable results.
  186. Suspend will stop the execution of the task. Reboot will
  187. reboot the machine. Alert will call the original Alert().
  188.  
  189. · intuition.library/DisplayAlert().
  190. This patch will try to display the text in a requester
  191. instead. There are five responses to choose between -
  192. LMB/RMB/Suspend/Reboot and Alert. LMB and RMB does the same
  193. as if you pressed the left or right mouse button after an
  194. original DisplayAlert(). Suspend will stop the execution of
  195. the task. Reboot will reboot the machine. Alert will call
  196. the original DisplayAlert().
  197.  
  198. · intuition.library/TimedDisplayAlert().
  199. Requires kickstart release 3.0. Identical to the
  200. DisplayAlert() patch.
  201.  
  202. · intuition.library/AutoRequest().
  203. This patch will use reqtools.library for the requester.
  204.  
  205. · intuition.library/EasyRequest().
  206. Requires kickstart release 2.0. This patch will use
  207. reqtools.library for the requester.
  208.  
  209.  
  210.  
  211.  
  212.  
  213. 6. Notes about the new asl.library
  214. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  215. Current version emulated is 39.6.
  216.  
  217. Ignores ASLxx_PositiveText if longer than six chars.
  218.  
  219. Copies library bases from ReqTools (Intuition, Gfx, DOS,
  220. Utility, GadTools). UtilityBase and GadToolsBase are only
  221. valid on kickstart version 36 and higher.
  222.  
  223. Doesn't try to open icon.library if kickstart version is
  224. lower than 36, assuming it is disk based.
  225.  
  226. Tags ignored:
  227. ASLxx_NegativeText
  228. ASLxx_InitialLeftEdge
  229. ASLxx_InitialTopEdge
  230. ASLxx_InitialWidth
  231. ASLxx_InitialHeight
  232. ASLxx_FilterFunc
  233. ASLFR_RejectIcons
  234. ASLFR_RejectPattern
  235. ASLFR_AcceptPattern
  236. ASLFR_FilterDrawers
  237. ASLFO_DoFrontPen
  238. ASLFO_DoBackPen
  239. ASLFO_DoStyle
  240. ASLFO_DoDrawMode
  241. ASLFO_MaxFrontPen
  242. ASLFO_MaxBackPen
  243. ASLFO_ModeList
  244. ASLFO_FrontColors
  245. ASLFO_BackColors
  246. ASLSM_InitialInfoOpened
  247. ASLSM_InitialInfoLeftEdge
  248. ASLSM_InitialInfoTopEdge
  249. ASLSM_CustomSMList
  250.  
  251. Flags ignored:
  252. FRF_DOWILDFUNC
  253. FRF_FILTERDRAWERS
  254. FRF_REJECTICONS
  255. FOF_DOFRONTPEN
  256. FOF_DOBACKPEN
  257. FOF_DOFONTSTYLE
  258. FOF_DODRAWMODE
  259. FOF_DOWILDFUNC
  260.  
  261.  
  262.  
  263.  
  264.  
  265. 7. Notes about the new req.library
  266. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  267. Current version emulated is 2.5.
  268.  
  269. Doesn't make the port "req timer port" public, when using
  270. TextRequest() with a timeout.
  271.  
  272. The library structure is 48 bytes larger, to hold the
  273. request needed to open console.device. The memory for the
  274. request isn't allocated separately by the library itself.
  275.  
  276. No extra chip memory is allocated for the images. The image
  277. data is already in a hunk that is loaded into chip memory.
  278.  
  279. Rexxsyslib.library is never opened, thus rl_RexxSysBase will
  280. always be zero.
  281.  
  282. Functions:
  283. Center()
  284. SetSize()
  285. SetLocation()
  286. ReadLocation()
  287. ReqFormat()
  288. Dispatch()
  289. -  Never tries to open rexxsyslib.library.
  290. -  Always returns the value 14.
  291. Fake1()
  292. Fake2()
  293. Fake3()
  294. FileRequester()
  295. -  Calls AllocAslRequest()/AslRequest()/FreeAslRequest().
  296. -  Pattern:
  297.    -  The character "*" will be replaced by "#?".
  298.    -  The contents of frq_Hide is shown (as ~(pattern)), if
  299.       frq_Show is 0 or if its buffer is NULL.
  300.    -  Changes made in the pattern gadget will not be saved
  301.       for next call.
  302. -  frq_MaxExtendedSelect is ignored.
  303. -  frq_numlines is ignored.
  304. -  frq_numcolumns is ignored.
  305. -  frq_devcolumns is ignored.
  306. -  frq_Flags:
  307.    -  FRQSHOWINFO is supported.
  308.    -  FRQINFOGADGET is ignored.
  309.    -  FRQNOHALFCACHE is ignored.
  310.    -  FRQNOSORT is ignored.
  311.    -  FRQNODRAG is ignored.
  312.    -  FRQSAVING is supported.
  313.    -  FRQLOADING is ignored.
  314. -  frq_dirnamescolor is ignored.
  315. -  frq_filenamescolor is ignored.
  316. -  frq_devicenamescolor is ignored.
  317. -  frq_fontnamescolor is ignored.
  318. -  frq_fontsizecolor is ignored.
  319. -  frq_detailcolor is ignored.
  320. -  frq_blockcolor is ignored.
  321. -  frq_gadgettextcolor is ignored.
  322. -  frq_textmessagecolor is ignored.
  323. -  frq_stringnamecolor is ignored.
  324. -  frq_stringgadgetcolor is ignored.
  325. -  frq_boxbordercolor is ignored.
  326. -  frq_gadgetboxcolor is ignored.
  327. -  frq_FileBufferPos is ignored.
  328. -  frq_FileDispPos is ignored.
  329. -  frq_DirBufferPos is ignored.
  330. -  frq_DirDispPos is ignored.
  331. -  frq_HideBufferPos is ignored.
  332. -  frq_HideDispPos is ignored.
  333. -  frq_ShowBufferPos is ignored.
  334. -  frq_ShowDispPos is ignored.
  335. ColorRequester()
  336. -  Calls rtPaletteRequest() (via ExtendedColorRequester()).
  337. DrawBox()
  338. MakeButton()
  339. MakeScrollBar()
  340. PurgeFiles()
  341. - Calls FreeAslRequest()
  342. GetFontHeightAndWidth()
  343. MakeGadget()
  344. MakeString()
  345. MakeProp()
  346. LinkGadget()
  347. LinkStringGadget()
  348. LinkPropGadget()
  349. GetString()
  350. -  Calls rtGetString().
  351. -  d0=visiblechars is ignored.
  352. RealTimeScroll()
  353. TextRequest()
  354. -  Calls EasyRequest(), or
  355.    BuildEasyRequest()/SysReqHandler()/FreeSysRequest() if
  356.    timeout is specified.
  357. -  TR_KeyMask is ignored.
  358. -  TR_AbortMask is ignored.
  359. -  If no gadgets are specified, the requester will get one
  360.    named "Okay" anyway (EasyRequest()-requesters must have
  361.    at least one gadget).
  362. GetLong()
  363. -  Calls rtGetLong().
  364. RawKeyToAscii()
  365. ExtendedColorRequester()
  366. -  Calls rtPaletteRequest().
  367. NewGetString()
  368. -  Calls rtGetString() (via GetString()).
  369. -  gs_visiblesize is ignored.
  370.  
  371.  
  372.  
  373.  
  374.  
  375. 8. History
  376. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  377. 1.0 (26.2.95)
  378. · First release.
  379.  
  380. 1.1 (4.3.95)
  381. · Optimized Open()/Close()/Expunge().
  382.   Saved 2 (!) bytes.
  383. · Included PatchArp.
  384. · Included new asl.library.
  385. · Changed name from NewReqLib to NewReqLibs.
  386.  
  387. 1.2 (26.3.95)
  388. · Arp: Handles FRF_DoMsgFunc and FRF_DoWildFunc.
  389. · Asl: AslRequest() makes dos.library/IoErr() return
  390.   ERROR_NO_FREE_STORE if request is NULL, else 0.
  391. · Asl: Handles ASLxx_PositiveText if not longer than six
  392.   chars.
  393. · Asl: Handles ASLxx_IntuiMsgFunc.
  394. · Asl: Some bug fixes.
  395. · Asl: Handles FOF_DOMSGFUNC and FRF_DOMSGFUNC.
  396. · Req: TextRequest() now handles TR_Timeout.
  397. · PatchArp: Cuts off code left over in FileRequest(),
  398.   finally resulting in a smaller arp.library. :-)
  399. · Changed function tables to use relative word displacements
  400.   instead of absolute function pointers.
  401.   Saved lots of bytes. :-)
  402.  
  403. 1.3 (18.6.95)
  404. · Asl: Fixed bug in handling of ASLxx_PositiveText.
  405. · Asl: Fixed bug in handling of FRF_DOMULTISELECT.
  406. · Asl: Fixed bug in Expunge().
  407.  
  408. 1.4 (5.8.95)
  409. · Req: Fixed bug in Center().
  410. · Req: Fixed bug in ReqFormat().
  411. · Included PatchOS.
  412.  
  413. 1.5 (30.1.96)
  414. · Removed installation script.
  415. · Removed PatchArp. I didn't like the idea of modifying
  416.   arp.library, and who uses arp anyway?
  417. · Renamed PatchOS to TRTPatch; my RTPatch.
  418. · TRTPatch: Removed enforcer hit.
  419.   (caused by calling dos.library/PutStr(0))
  420. · TRTPatch: AutoRequest() and EasyRequest() patches
  421.   passed "System Request" when window title was zero, they
  422.   now pass a NULL string.
  423. · TRTPatch: Removed options WILDSTAR, NOCLICK and BBLANK.
  424. · Asl: Removed enforcer hit in font requester.
  425. · Asl: When doing multiple selection, the wa_Lock fields in
  426.   rf_ArgList was always set to zero.
  427. · Req: Didn't cache directory when cancel was selected.
  428.  
  429. 1.6 (23.9.96)
  430. · Req: Fixed minor bug in ReadLocation().
  431. · TRTPatch: Alert()-patch shows cli command name also.
  432. · Req: Fixed wrong stack handling in RawKeyToAscii().
  433. · Req: Fixed Enforcer hit with timeout option.
  434. · Req: TextRequest() uses intuition.library/EasyRequest(),
  435.   or BuildEasyRequest()/SysReqHandler()/FreeSysRequest() if
  436.   timeout option is used, and FileRequester() uses
  437.   asl.library. (This is instead of reqtools.library.)
  438. · Asl: ASLxx_SleepWindow, ASLSM_DisplayDepth and
  439.   ASLSM_OverscanType were not properly handled.
  440.   sm_AutoScroll field was always set to zero.
  441.   Sets SCREQF_NONSTDMODES.
  442. · TRTPatch: EZREQF_NORETURNKEY is never set anymore.
  443. · TRTPatch: Alert()-patch times out (KS 3.0+).
  444.  
  445. 1.7 (5.10.96)
  446. · Req: Handled FRQHIDEWILDSB wrong.
  447.  
  448.  
  449.  
  450.  
  451.  
  452. 9. Credits
  453. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  454. Thanks to Nico François for reqtools.library.
  455.  
  456.  
  457.  
  458.  
  459.  
  460. 10. Distribution
  461. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  462. NewReqLibs is made by and copyright Torbjörn Andersson. No
  463. commercial usage is allowed without written permission from
  464. the author. Other distribution is allowed if no files in the
  465. original distribution are removed or modified.
  466.  
  467. Comments/questions etc. are always welcome.
  468.  
  469. Email:
  470. d95ta@efd.lth.se
  471.  
  472. Home page:
  473. http://www.efd.lth.se/~d95ta
  474.  
  475. Home address:
  476. Torbjörn Andersson
  477. Knöppletorp 4379
  478. S-380 31 LÄCKEBY
  479. SWEDEN
  480.  
  481.  
  482.  
  483.  
  484.  
  485.                                           I love you - AMIGA
  486.